/*
 * McCullochPittsNeuron.h
 *
 *  Created on: Sep 5, 2013
 *      Author: filipe
 */

#ifndef MCCULLOCHPITTSNEURON_H_
#define MCCULLOCHPITTSNEURON_H_

#include "Neuron.h"
#include "Activation.h"

class McCullochPittsNeuron : public Neuron
{
	int _num_synapsis;
	double *_synapsis_weight;
	ActivationFunction *_activation_function;

	public:

		McCullochPittsNeuron();
		McCullochPittsNeuron(int num_synapsis, ActivationFunction *activation_function);
		~McCullochPittsNeuron();

		void SetNumSynapsis(int num_synapsis);
		void SetActivationFunction(ActivationFunction *activation_function);

		int GetNumSynapsis(void) const;
		ActivationFunction* GetActivationFunction(void) const;

		void SetSynapticWeight(int synapsis, double value);
		double Evaluate(double *input) const;
};

#endif /* MCCULLOCHPITTSNEURON_H_ */
